package dk.aiszone.lang.autosource.generatorobjects.interfaces;

/**
 * Interface implemented by <code>BodyContainers</code> which are actually just wrappers for another <code>BodyContainer</code>.
 * 
 * @author Ais
 */
public interface BodyContainerWrapper extends BodyContainer {

    /**
     * Retrieve the <code>BodyContainer</code> behind <code>this</code>.
     * 
     * @return The <code>BodyContainer</code> instance behind this.
     */
    public abstract BodyContainer retrieveBodyContainer();

    /**
     * Set the <code>BodyContainer</code> behind <code>this</code> to a new instance of <code>BodyContainer</code>
     * 
     * @param bodyContainer
     *            The new <code>BodyContainer</code> to set.<br>
     *            Beware setting this to <code>null</code> will cause later <code>NullPointerExceptions</code>.
     */
    public abstract void setBodyContainer(BodyContainer bodyContainer);
}